// 入口函数
$(function () {
    // 需求1:点击切换
    $('#loginBox a').on('click', function () {
        // 点击登录区域里的a链接,隐藏该区域,显示注册区域
        $('#loginBox').hide()
        $('#regBox').show()

    })
    $('#regBox a').on('click', function () {
        // 点击登录区域里的a链接,隐藏该区域,显示注册区域
        $('#regBox').hide()
        $('#loginBox').show()

    })

    // 需求2:自定义校验规则
    // 导入了
    let form = layui.form;
    // verify()方法,值是对象类型,属性是校验规则名称
    form.verify({
        // 属性是校验规则名称
        // 值是具体的校验规则(数组或者函数)
        username: [
            // 数组有两个值,第一个是校验规则,第二个是报错信息
            // [\w]中括号的意义在于未来添加其他正则表达式方便添加
            // /^[a-zA-Z0-9]{1,10}$/,
            /^[\w]{1,10}$/,
            '用户名必须是1-10位字母和数字'
        ],
        password: [
            //  \s 所有空字符串
            // \S  所有非空字符串
            /^[\S]{6,15}$/,
            '密码长度必须是6-15位的非空字符串'
        ],
        // 确认密码规则
        repassword: function (value) {
            // value就是你给哪个标签添加这个校验规则,
            // 这个标签的值就是赋值给value
            let pwd = $("#regBox input[name=password").val();
            // 如果原密码的值和确认密码的值不相等,就报错
            if (pwd != value) {
                return '两次密码输入不一致'
            }
        }

    })

    // 需求3:注册功能
    // 利用layui优化弹窗,方便使用将layui.layer取出赋值给变量layer
    let layer = layui.layer;
    // 获取标签,绑定submit事件
    $("#formReg").on('submit', function (e) {
        // 阻止表单默认提交
        e.preventDefault();
        // 发送ajax,使用axios
        axios({
            method: 'POST',
            url: '/api/reguser',
            // 不要传递对象类型,因为对象类型头信息设置的是application/json
            // 后端不接受json类型的参数
            data: $(this).serialize()
            // 箭头函数
        }).then(res => {
            // console.log(res.data);
            // 判断返回的数据是否正确
            // 
            if (res.data.status !== 0) {
                // 失败后,返回错误信息
                // return alert(res.data.message)
                // 利用layui优化弹窗
                return layer.msg(res.data.message)
            }
            // 成功后的提示
            // alert('恭喜您,注册用户成功!')
            layer.msg('恭喜您,注册用户成功!')
            // 切换到登录模块,调用去登陆的单击事件
            $('#regBox a').click();
            // 清空表单 - DOM元素中有一个reset(),可以重置表单
            $("#formReg")[0].reset();
        })
    })

    // 需求4:登录功能
    $('#formLogin').on('submit', function (e) {
        // 阻止表单默认提交
        e.preventDefault();
        // 发送ajax请求
        console.log($(this).serialize());
        axios({
            method: 'post',
            url: '/api/login',
            // 参数,获取表单中的数据,格式:username=shihanbo&password=12312334
            data: $(this).serialize(),

        }).then(res => {
            // console.log(res.data);
            // 判断数据是否正确
            if (res.data.status !== 0) {
                return layer.msg(res.data.message)

            }
            // 成功,提示,存储token
            layer.msg('恭喜您,登陆成功!');
            localStorage.setItem('token', res.data.token)
            // 页面跳转到首页:index.html
            location.href = '/index.html'
        })

    })
})